#include <iostream>
#include <string>
#include <memory>
#include <unordered_map>
// 代理模式
class ServiceInterface
{
public:
    virtual void display(const std::string& id) = 0;
};

// 真实角色
class RealObj : public ServiceInterface
{
public:
    void display(const std::string& id) override
    {
        std::cout << "展示图片" << std::endl;
    }
};
class Proxy : public RealObj
{
private:
    std::shared_ptr<RealObj> _real;
    std::unordered_map<std::string,std::string> _cache;
public:
    bool exists(const std::string& key)
    {
        //TODO
        return true;
    }
    void display(const std::string& id) override
    {
        if (!_real)
        {
            _real = std::make_shared<RealObj>();
        }
        if(exists(id))
        {
            return res; //TODO
        }
        return _real->display(id);
    }
};

int main()
{
    Proxy p;
    p.display();
    return 0;
}